{"componentChunkName":"component---src-templates-blog-post-blog-post-js","path":"/articulos/agentes_ia_programar/","result":{"data":{"mdx":{"body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Los agentes de IA más demandados para programar: Claude Code, Codex, Cursor, OpenCode y Antigravity\",\n  \"seoTitle\": \"Agentes de IA para programar: Claude Code, Codex y Cursor\",\n  \"date\": \"2026-08-27\",\n  \"description_sort\": \"Comparativa de Claude Code, Codex, Cursor, OpenCode, Google Antigravity y GitHub Copilot para programar con agentes de IA.\",\n  \"description\": \"Comparamos Claude Code, Codex, Cursor, OpenCode, Google Antigravity y GitHub Copilot para elegir el agente de IA con el que programar.\",\n  \"featuredImage\": \"agentes-ia-portada.webp\",\n  \"twitterUsername\": \"@CursosDesarrol1\",\n  \"tags\": [\"inteligencia-artificial\", \"agentes-ia\", \"programacion\", \"codex\", \"claude-code\", \"cursor\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"span\", {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1200px\"\n    }\n  }, \"\\n      \", mdx(\"a\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/e7370bb5d28b31532f99ed7b0b712d79/a8642/agentes-ia-portada.webp\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"66.66666666666666%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/webp;base64,UklGRmQAAABXRUJQVlA4IFgAAACQAwCdASoUAA0APtFUo0uoJKMhsAgBABoJZgCdACHhXJmXkE7gAP72jSPxkpN3aqYbHG0CniSXNxVh7qvaoGM5J88YweM2YakMDXR13mrHUSVbn6kQAAAA')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"img\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Desarrollador coordinando agentes de inteligencia artificial para programar\",\n    \"title\": \"Desarrollador coordinando agentes de inteligencia artificial para programar\",\n    \"src\": \"/static/e7370bb5d28b31532f99ed7b0b712d79/5bb53/agentes-ia-portada.webp\",\n    \"srcSet\": [\"/static/e7370bb5d28b31532f99ed7b0b712d79/cb58d/agentes-ia-portada.webp 300w\", \"/static/e7370bb5d28b31532f99ed7b0b712d79/f8b1b/agentes-ia-portada.webp 600w\", \"/static/e7370bb5d28b31532f99ed7b0b712d79/5bb53/agentes-ia-portada.webp 1200w\", \"/static/e7370bb5d28b31532f99ed7b0b712d79/a8642/agentes-ia-portada.webp 1536w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  }), \"\\n  \"), \"\\n    \"), mdx(\"br\", null), mdx(\"br\", null), mdx(\"h1\", null, \"Los agentes de IA m\\xE1s demandados para programar: Claude Code, Codex, Cursor, OpenCode y Antigravity\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Claude Code, Codex, Cursor, OpenCode, Google Antigravity y GitHub Copilot est\\xE1n cambiando la forma de desarrollar software. Pero sus diferencias van mucho m\\xE1s all\\xE1 del modelo de inteligencia artificial que utilizan. Analizamos c\\xF3mo es trabajar realmente con ellos desde el punto de vista de un desarrollador.\")), mdx(\"p\", null, \"Hace apenas unos a\\xF1os, utilizar inteligencia artificial para programar significaba algo bastante sencillo: empezar a escribir una funci\\xF3n y esperar que el editor completase las siguientes l\\xEDneas.\"), mdx(\"p\", null, \"Despu\\xE9s llegaron los chats integrados en los IDE.\"), mdx(\"p\", null, \"Pod\\xEDamos seleccionar un fragmento de c\\xF3digo y preguntar:\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\xBFPor qu\\xE9 falla esta funci\\xF3n?\")), mdx(\"p\", null, \"O pedir directamente:\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"Refactoriza este servicio para reducir la duplicaci\\xF3n de c\\xF3digo.\")), mdx(\"p\", null, \"La IA respond\\xEDa y nosotros decid\\xEDamos qu\\xE9 hacer con la respuesta.\"), mdx(\"p\", null, \"Pero durante los \\xFAltimos dos a\\xF1os se ha producido un cambio mucho m\\xE1s importante.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"La IA ha dejado de limitarse a sugerir c\\xF3digo y ha empezado a trabajar sobre el proyecto.\")), mdx(\"p\", null, \"Es la aparici\\xF3n de los \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"agentes de IA para programaci\\xF3n\"), \".\"), mdx(\"p\", null, \"Y herramientas como Claude Code, Codex, Cursor, OpenCode o Google Antigravity est\\xE1n llevando esta idea bastante m\\xE1s lejos.\"), mdx(\"h2\", null, \"\\xBFQu\\xE9 es realmente un agente de IA para programaci\\xF3n?\"), mdx(\"span\", {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1200px\"\n    }\n  }, \"\\n      \", mdx(\"a\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/94528eeec97ba387f8a30f0c22fbc3df/a8642/agentes-ia-que-es.webp\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"66.66666666666666%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/webp;base64,UklGRmwAAABXRUJQVlA4IGAAAADQAwCdASoUAA0APtFUo0uoJKMhsAgBABoJQBWABDwIoOc7OVxgLqAA/vaKUV+AHirlSDXkE5VzqGoZ4InhT2zIqPmHfux85Ina/PkeT0APUbeYMamkhGh+dG+L3ycgAAA=')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"img\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Agente de IA analizando un repositorio de software antes de programar\",\n    \"title\": \"Agente de IA analizando un repositorio de software antes de programar\",\n    \"src\": \"/static/94528eeec97ba387f8a30f0c22fbc3df/5bb53/agentes-ia-que-es.webp\",\n    \"srcSet\": [\"/static/94528eeec97ba387f8a30f0c22fbc3df/cb58d/agentes-ia-que-es.webp 300w\", \"/static/94528eeec97ba387f8a30f0c22fbc3df/f8b1b/agentes-ia-que-es.webp 600w\", \"/static/94528eeec97ba387f8a30f0c22fbc3df/5bb53/agentes-ia-que-es.webp 1200w\", \"/static/94528eeec97ba387f8a30f0c22fbc3df/a8642/agentes-ia-que-es.webp 1536w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  }), \"\\n  \"), \"\\n    \"), mdx(\"br\", null), mdx(\"p\", null, \"Imaginemos una situaci\\xF3n bastante habitual.\"), mdx(\"p\", null, \"Tenemos una aplicaci\\xF3n en producci\\xF3n y necesitamos implementar un sistema de auditor\\xEDa que registre determinadas operaciones realizadas por los usuarios.\"), mdx(\"p\", null, \"Con un chatbot tradicional podr\\xEDamos preguntarle c\\xF3mo dise\\xF1arlo. Nos devolver\\xEDa c\\xF3digo de ejemplo y tendr\\xEDamos que adaptarlo.\"), mdx(\"p\", null, \"Con un agente podemos plantear algo diferente:\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"Analiza el proyecto. Identifica d\\xF3nde se realizan las operaciones que deben auditarse. Prop\\xF3n una arquitectura para implementar el sistema sin modificar todav\\xEDa el c\\xF3digo. Cuando termines, mu\\xE9strame los m\\xF3dulos afectados y los riesgos que has encontrado.\")), mdx(\"p\", null, \"El agente puede entonces explorar directorios, leer archivos, buscar referencias, analizar dependencias y construir una propuesta bas\\xE1ndose en nuestro c\\xF3digo real.\"), mdx(\"p\", null, \"Una vez revisado el plan podr\\xEDamos decir:\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"Implementa la primera fase y ejecuta los tests afectados.\")), mdx(\"p\", null, \"El agente modifica varios archivos, ejecuta comandos, observa los errores, corrige parte de ellos y vuelve a ejecutar las pruebas.\"), mdx(\"p\", null, \"Esto cambia completamente la relaci\\xF3n entre programador e inteligencia artificial.\"), mdx(\"p\", null, \"Antes ten\\xEDamos:\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"desarrollador \\u2192 pregunta \\u2192 IA \\u2192 c\\xF3digo\")), mdx(\"p\", null, \"Ahora tenemos algo m\\xE1s parecido a:\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"desarrollador \\u2192 objetivo \\u2192 agente \\u2192 an\\xE1lisis \\u2192 implementaci\\xF3n \\u2192 pruebas \\u2192 revisi\\xF3n\")), mdx(\"p\", null, \"Es lo que normalmente se denomina \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"desarrollo ag\\xE9ntico\"), \" o \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"agentic coding\"), \".\"), mdx(\"p\", null, \"Y aunque las principales herramientas persiguen objetivos similares, la experiencia de trabajar con cada una puede ser bastante diferente.\"), mdx(\"hr\", null), mdx(\"h2\", null, \"Claude Code: el agente que convirti\\xF3 la terminal en un entorno de desarrollo\"), mdx(\"span\", {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1200px\"\n    }\n  }, \"\\n      \", mdx(\"a\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/95fbc78ce254725bc86765a626a52697/a8642/agentes-ia-claude-code.webp\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"66.66666666666666%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/webp;base64,UklGRnAAAABXRUJQVlA4IGQAAADwAwCdASoUAA0APtFUo0uoJKMhsAgBABoJZQCdACHhkrT72pD8lgjgAP72jMaM3UBVQA8yctcA05Wv0MkDT5fZHjNPkkCk7WIdNHtT2hy12jXmpUTNYViR/QEfrjTdH6KGAAAA')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"img\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Flujo de programación con un agente de IA desde la terminal\",\n    \"title\": \"Flujo de programación con un agente de IA desde la terminal\",\n    \"src\": \"/static/95fbc78ce254725bc86765a626a52697/5bb53/agentes-ia-claude-code.webp\",\n    \"srcSet\": [\"/static/95fbc78ce254725bc86765a626a52697/cb58d/agentes-ia-claude-code.webp 300w\", \"/static/95fbc78ce254725bc86765a626a52697/f8b1b/agentes-ia-claude-code.webp 600w\", \"/static/95fbc78ce254725bc86765a626a52697/5bb53/agentes-ia-claude-code.webp 1200w\", \"/static/95fbc78ce254725bc86765a626a52697/a8642/agentes-ia-claude-code.webp 1536w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  }), \"\\n  \"), \"\\n    \"), mdx(\"br\", null), mdx(\"p\", null, \"Claude Code, desarrollado por Anthropic, es uno de los ejemplos m\\xE1s claros de esta nueva generaci\\xF3n de herramientas.\"), mdx(\"p\", null, \"En lugar de plantearse \\xFAnicamente como una extensi\\xF3n del editor, Claude Code naci\\xF3 con una filosof\\xEDa muy cercana a la forma en la que muchos desarrolladores trabajan realmente: \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"repositorio, terminal y herramientas del sistema\"), \".\"), mdx(\"p\", null, \"Podemos entrar en un proyecto y pedirle que investigue un problema.\"), mdx(\"p\", null, \"Claude Code puede recorrer el repositorio, localizar archivos relacionados, comprender dependencias entre m\\xF3dulos, modificar c\\xF3digo y ejecutar comandos.\"), mdx(\"p\", null, \"Esto permite trabajar de una forma bastante natural.\"), mdx(\"p\", null, \"Por ejemplo:\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"Investiga por qu\\xE9 algunos usuarios reciben un error 403 al renovar el token. No modifiques c\\xF3digo hasta encontrar la causa.\")), mdx(\"p\", null, \"El agente puede buscar controladores, guards, servicios de autenticaci\\xF3n y tests relacionados.\"), mdx(\"p\", null, \"La palabra importante aqu\\xED es \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"investigar\"), \".\"), mdx(\"p\", null, \"No estamos pidiendo simplemente que genere c\\xF3digo. Estamos delegando una parte del proceso de ingenier\\xEDa.\"), mdx(\"p\", null, \"Despu\\xE9s podemos revisar su explicaci\\xF3n y decidir si queremos que implemente la soluci\\xF3n.\"), mdx(\"p\", null, \"Este flujo de \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"analizar \\u2192 planificar \\u2192 implementar \\u2192 verificar\"), \" es probablemente una de las mejores formas de trabajar actualmente con agentes.\"), mdx(\"p\", null, \"Claude Code encaja especialmente bien para desarrolladores acostumbrados a terminal, Git, Docker, herramientas CLI y proyectos backend.\"), mdx(\"p\", null, \"Y su adopci\\xF3n profesional est\\xE1 creciendo con mucha rapidez, hasta convertirse en uno de los agentes de programaci\\xF3n de referencia.\"), mdx(\"hr\", null), mdx(\"h2\", null, \"Cursor: cuando el agente vive dentro del editor\"), mdx(\"span\", {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1200px\"\n    }\n  }, \"\\n      \", mdx(\"a\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/d0729bd04ea354d3f786822fd21cc113/485a2/agentes-ia-cursor.webp\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"58.00000000000001%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/webp;base64,UklGRn4AAABXRUJQVlA4IHIAAADwAwCdASoUAAwAPtFUpEuoJKOhsAgBABoJZACdAB6Jsw/U5Z3gaycAAP7qC4q8cxdwTT4DDkfseuwno17pPgJEJzNcJp/DgDd4n3jSWrhqEKDAw3kthPNP12WGVNiHzMSzOVwgDuBLm7F8M6HOKISgAAA=')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"img\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Desarrollador revisando cambios de código con un agente integrado en el editor\",\n    \"title\": \"Desarrollador revisando cambios de código con un agente integrado en el editor\",\n    \"src\": \"/static/d0729bd04ea354d3f786822fd21cc113/5bb53/agentes-ia-cursor.webp\",\n    \"srcSet\": [\"/static/d0729bd04ea354d3f786822fd21cc113/cb58d/agentes-ia-cursor.webp 300w\", \"/static/d0729bd04ea354d3f786822fd21cc113/f8b1b/agentes-ia-cursor.webp 600w\", \"/static/d0729bd04ea354d3f786822fd21cc113/5bb53/agentes-ia-cursor.webp 1200w\", \"/static/d0729bd04ea354d3f786822fd21cc113/485a2/agentes-ia-cursor.webp 1600w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  }), \"\\n  \"), \"\\n    \"), mdx(\"br\", null), mdx(\"p\", null, \"Cursor parte de una filosof\\xEDa diferente.\"), mdx(\"p\", null, \"En lugar de sacar al desarrollador del editor, intenta convertir el propio editor en un entorno dise\\xF1ado alrededor de la inteligencia artificial.\"), mdx(\"p\", null, \"La experiencia resulta especialmente familiar para usuarios de Visual Studio Code.\"), mdx(\"p\", null, \"Podemos estar modificando un componente, seleccionar c\\xF3digo, consultar al agente y continuar programando.\"), mdx(\"p\", null, \"Pero Cursor ya no se limita a esa asistencia contextual.\"), mdx(\"p\", null, \"Su Agent puede explorar el repositorio, modificar m\\xFAltiples archivos, utilizar la terminal y ejecutar comandos.\"), mdx(\"p\", null, \"Esto permite alternar f\\xE1cilmente entre dos formas de trabajar.\"), mdx(\"p\", null, \"En algunos momentos queremos escribir nosotros mismos el c\\xF3digo y utilizar IA como asistente.\"), mdx(\"p\", null, \"En otros queremos delegar una tarea:\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"Cambia el sistema de paginaci\\xF3n de todos los endpoints para utilizar el nuevo DTO y actualiza los tests.\")), mdx(\"p\", null, \"Cursor analiza el proyecto, identifica los archivos implicados y propone los cambios.\"), mdx(\"p\", null, \"La gran ventaja est\\xE1 en la \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"integraci\\xF3n visual del proceso\"), \".\"), mdx(\"p\", null, \"Podemos revisar c\\xF3modamente los \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"diffs\"), \", observar qu\\xE9 archivos modifica el agente y mantener un control bastante directo sobre la implementaci\\xF3n.\"), mdx(\"p\", null, \"Por eso Cursor sigue siendo especialmente interesante para desarrolladores que quieren introducir agentes en su flujo de trabajo sin abandonar la experiencia tradicional de un IDE.\"), mdx(\"hr\", null), mdx(\"h2\", null, \"Codex: pasar de escribir c\\xF3digo a delegar tareas\"), mdx(\"span\", {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1200px\"\n    }\n  }, \"\\n      \", mdx(\"a\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/670606aeac0e74b1fef6ebff2bb12f7f/485a2/agentes-ia-codex.webp\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"57.00000000000001%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/webp;base64,UklGRnIAAABXRUJQVlA4IGYAAADwAwCdASoUAAsAPtFUo0uoJKMhsAgBABoJQBOgBDvufsxKk953QfVgAP71ldM1Uj13EfC4lBMCeQ9C4+F54jhMldWlgDH29mnGAsQjvENf8+fc19zKKuxm12KBPXmW0y61GZqIAAA=')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"img\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Desarrollador delegando varias tareas de software a agentes de IA en paralelo\",\n    \"title\": \"Desarrollador delegando varias tareas de software a agentes de IA en paralelo\",\n    \"src\": \"/static/670606aeac0e74b1fef6ebff2bb12f7f/5bb53/agentes-ia-codex.webp\",\n    \"srcSet\": [\"/static/670606aeac0e74b1fef6ebff2bb12f7f/cb58d/agentes-ia-codex.webp 300w\", \"/static/670606aeac0e74b1fef6ebff2bb12f7f/f8b1b/agentes-ia-codex.webp 600w\", \"/static/670606aeac0e74b1fef6ebff2bb12f7f/5bb53/agentes-ia-codex.webp 1200w\", \"/static/670606aeac0e74b1fef6ebff2bb12f7f/485a2/agentes-ia-codex.webp 1600w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  }), \"\\n  \"), \"\\n    \"), mdx(\"br\", null), mdx(\"p\", null, \"Codex, desarrollado por OpenAI, plantea otra evoluci\\xF3n interesante.\"), mdx(\"p\", null, \"Aqu\\xED empieza a adquirir bastante importancia el concepto de \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"delegaci\\xF3n\"), \".\"), mdx(\"p\", null, \"Imaginemos que tenemos tres tareas pendientes:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"actualizar una dependencia;\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"solucionar un problema de autenticaci\\xF3n;\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"crear los tests de un m\\xF3dulo.\")), mdx(\"p\", null, \"Tradicionalmente las realizar\\xEDamos una detr\\xE1s de otra.\"), mdx(\"p\", null, \"Con un entorno orientado a agentes podemos empezar a plantearnos otra posibilidad:\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\xBFpor qu\\xE9 no ejecutarlas simult\\xE1neamente?\")), mdx(\"p\", null, \"Podemos asignar diferentes trabajos a distintos agentes utilizando entornos aislados.\"), mdx(\"p\", null, \"Mientras uno investiga el problema de autenticaci\\xF3n, otro puede trabajar en los tests y otro analizar las consecuencias de actualizar una dependencia.\"), mdx(\"p\", null, \"Cuando terminan, nuestro trabajo consiste en revisar las propuestas y decidir cu\\xE1les incorporamos.\"), mdx(\"p\", null, \"Esto empieza a modificar incluso el papel del desarrollador.\"), mdx(\"p\", null, \"Pasamos progresivamente de:\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"Voy a implementar esta funcionalidad.\")), mdx(\"p\", null, \"a:\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"Voy a definir c\\xF3mo debe implementarse esta funcionalidad y revisar el resultado.\")), mdx(\"p\", null, \"No significa que dejemos de programar.\"), mdx(\"p\", null, \"Significa que una parte cada vez mayor del trabajo mec\\xE1nico puede delegarse.\"), mdx(\"hr\", null), mdx(\"h2\", null, \"OpenCode: una alternativa abierta que est\\xE1 creciendo r\\xE1pidamente\"), mdx(\"span\", {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1200px\"\n    }\n  }, \"\\n      \", mdx(\"a\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/93cbd1eaff93d71a9d3c3e948015457d/a8642/agentes-ia-opencode.webp\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"66.66666666666666%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/webp;base64,UklGRnQAAABXRUJQVlA4IGgAAADQAwCdASoUAA0APtFUo0uoJKMhsAgBABoJQBdgBD3q9/7g+pR/qQAA/vSdX1UpGxcrsht4RaQEWc+ROxA0kFTpaTFRK/h84G8UnXpyLZlnVdY9JaRDd74m1/Fhzm5Pqbl580FWXAAAAA==')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"img\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Entorno abierto de programación con agentes de IA y distintos modelos\",\n    \"title\": \"Entorno abierto de programación con agentes de IA y distintos modelos\",\n    \"src\": \"/static/93cbd1eaff93d71a9d3c3e948015457d/5bb53/agentes-ia-opencode.webp\",\n    \"srcSet\": [\"/static/93cbd1eaff93d71a9d3c3e948015457d/cb58d/agentes-ia-opencode.webp 300w\", \"/static/93cbd1eaff93d71a9d3c3e948015457d/f8b1b/agentes-ia-opencode.webp 600w\", \"/static/93cbd1eaff93d71a9d3c3e948015457d/5bb53/agentes-ia-opencode.webp 1200w\", \"/static/93cbd1eaff93d71a9d3c3e948015457d/a8642/agentes-ia-opencode.webp 1536w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  }), \"\\n  \"), \"\\n    \"), mdx(\"br\", null), mdx(\"p\", null, \"OpenCode introduce una diferencia importante respecto a buena parte de sus competidores:\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"es open source.\")), mdx(\"p\", null, \"Se trata de un agente de programaci\\xF3n dise\\xF1ado principalmente alrededor de la terminal, aunque tambi\\xE9n dispone de aplicaci\\xF3n de escritorio e integraci\\xF3n con IDE.\"), mdx(\"p\", null, \"Su filosof\\xEDa recuerda en algunos aspectos a Claude Code: trabajar directamente sobre el repositorio utilizando una interfaz orientada al desarrollador.\"), mdx(\"p\", null, \"Pero existe una diferencia estrat\\xE9gica.\"), mdx(\"p\", null, \"OpenCode permite trabajar con distintos proveedores y modelos.\"), mdx(\"p\", null, \"Esto evita vincular completamente nuestro flujo de desarrollo a un \\xFAnico fabricante de inteligencia artificial.\"), mdx(\"p\", null, \"Para determinados desarrolladores y empresas esto puede ser especialmente interesante.\"), mdx(\"p\", null, \"Podemos imaginar OpenCode como una capa situada entre nosotros y diferentes modelos.\"), mdx(\"p\", null, \"Hoy podr\\xEDamos considerar que un modelo ofrece mejores resultados para una tarea concreta y ma\\xF1ana utilizar otro sin tener que sustituir necesariamente todo nuestro entorno de trabajo.\"), mdx(\"p\", null, \"Adem\\xE1s, al tratarse de un proyecto abierto, resulta posible inspeccionar c\\xF3mo funciona, extenderlo y adaptarlo a determinados flujos.\"), mdx(\"p\", null, \"No es todav\\xEDa la herramienta con mayor implantaci\\xF3n del mercado, pero ya ha alcanzado suficiente adopci\\xF3n como para dejar de considerarla una alternativa marginal.\"), mdx(\"p\", null, \"Y su crecimiento plantea una cuesti\\xF3n interesante:\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\xBFel futuro pertenece a agentes asociados a un modelo concreto o a agentes capaces de utilizar cualquier modelo?\")), mdx(\"p\", null, \"Todav\\xEDa no tenemos respuesta.\"), mdx(\"hr\", null), mdx(\"h2\", null, \"Google Antigravity: el IDE pensado para trabajar con varios agentes\"), mdx(\"span\", {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1200px\"\n    }\n  }, \"\\n      \", mdx(\"a\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/512b0f5766e80746f4c94a8c50efbd7a/a8642/agentes-ia-antigravity.webp\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"66.66666666666666%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/webp;base64,UklGRogAAABXRUJQVlA4IHwAAADwAwCdASoUAA0APtFWo0uoJKMhsAgBABoJaACdACHgV5vD8vSFxYQAAP71l1wK+RtrNQQzNlXkbjcymvXcHxZ99738BQiP7bZrASOSaoS6fLE/EQGdqWqQqcQ7AoEF1ZfdQK4QCCbXp3JxKdrBu32FL+0EhidhG8H64MAA')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"img\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Agentes de IA usando editor, terminal y navegador para verificar una aplicación\",\n    \"title\": \"Agentes de IA usando editor, terminal y navegador para verificar una aplicación\",\n    \"src\": \"/static/512b0f5766e80746f4c94a8c50efbd7a/5bb53/agentes-ia-antigravity.webp\",\n    \"srcSet\": [\"/static/512b0f5766e80746f4c94a8c50efbd7a/cb58d/agentes-ia-antigravity.webp 300w\", \"/static/512b0f5766e80746f4c94a8c50efbd7a/f8b1b/agentes-ia-antigravity.webp 600w\", \"/static/512b0f5766e80746f4c94a8c50efbd7a/5bb53/agentes-ia-antigravity.webp 1200w\", \"/static/512b0f5766e80746f4c94a8c50efbd7a/a8642/agentes-ia-antigravity.webp 1536w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  }), \"\\n  \"), \"\\n    \"), mdx(\"br\", null), mdx(\"p\", null, \"Google Antigravity lleva el concepto en otra direcci\\xF3n.\"), mdx(\"p\", null, \"Google lo plantea como una plataforma de desarrollo \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"agent-first\"), \".\"), mdx(\"p\", null, \"La diferencia puede parecer simplemente terminol\\xF3gica, pero detr\\xE1s existe una idea importante.\"), mdx(\"p\", null, \"En un IDE tradicional el protagonista es el desarrollador y la IA aparece como una herramienta adicional.\"), mdx(\"p\", null, \"En un entorno \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"agent-first\"), \", el desarrollador empieza a actuar tambi\\xE9n como \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"orquestador de agentes\"), \".\"), mdx(\"p\", null, \"Antigravity permite que los agentes trabajen sobre el editor, la terminal e incluso el navegador.\"), mdx(\"p\", null, \"Esto resulta especialmente interesante para tareas que no terminan cuando el c\\xF3digo compila.\"), mdx(\"p\", null, \"Imaginemos que pedimos:\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"A\\xF1ade una nueva pantalla de registro de usuario y comprueba que el flujo completo funciona.\")), mdx(\"p\", null, \"Un agente puede modificar el frontend, ejecutar la aplicaci\\xF3n y utilizar el navegador para verificar el resultado.\"), mdx(\"p\", null, \"Aqu\\xED aparece una caracter\\xEDstica que probablemente veremos cada vez m\\xE1s: \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"la capacidad del agente para verificar su propio trabajo utilizando las mismas herramientas que utilizar\\xEDa un desarrollador\"), \".\"), mdx(\"p\", null, \"Antigravity tambi\\xE9n est\\xE1 orientado al trabajo con varios agentes en paralelo.\"), mdx(\"p\", null, \"El desarrollador puede tener diferentes tareas ejecut\\xE1ndose mientras mantiene una visi\\xF3n global del proyecto.\"), mdx(\"p\", null, \"La idea empieza a alejarse del concepto tradicional de IDE.\"), mdx(\"p\", null, \"Ya no tenemos simplemente un editor con inteligencia artificial.\"), mdx(\"p\", null, \"Tenemos un \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"entorno desde el que coordinamos trabajo realizado por agentes\"), \".\"), mdx(\"hr\", null), mdx(\"h2\", null, \"GitHub Copilot: del autocompletado al agente\"), mdx(\"span\", {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1200px\"\n    }\n  }, \"\\n      \", mdx(\"a\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/81b86b52eaa456d4c325f9c0253dce49/485a2/agentes-ia-copilot.webp\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"50%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/webp;base64,UklGRmQAAABXRUJQVlA4IFgAAADQAwCdASoUAAoAPtFUo0uoJKMhsAgBABoJYgCdACHhwEunw6LD5YAA/vLev/o3dMHKnT9hx1b87XDRckSevAjV4NeEG1i2v2vnJ0x3eAZ5TVuQM4LeggAA')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"img\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Evolución del autocompletado de código a un agente de programación conectado al repositorio\",\n    \"title\": \"Evolución del autocompletado de código a un agente de programación conectado al repositorio\",\n    \"src\": \"/static/81b86b52eaa456d4c325f9c0253dce49/5bb53/agentes-ia-copilot.webp\",\n    \"srcSet\": [\"/static/81b86b52eaa456d4c325f9c0253dce49/cb58d/agentes-ia-copilot.webp 300w\", \"/static/81b86b52eaa456d4c325f9c0253dce49/f8b1b/agentes-ia-copilot.webp 600w\", \"/static/81b86b52eaa456d4c325f9c0253dce49/5bb53/agentes-ia-copilot.webp 1200w\", \"/static/81b86b52eaa456d4c325f9c0253dce49/485a2/agentes-ia-copilot.webp 1600w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  }), \"\\n  \"), \"\\n    \"), mdx(\"br\", null), mdx(\"p\", null, \"GitHub Copilot merece aparecer en esta comparaci\\xF3n por un motivo diferente.\"), mdx(\"p\", null, \"Fue una de las herramientas que populariz\\xF3 la programaci\\xF3n asistida mediante inteligencia artificial.\"), mdx(\"p\", null, \"Durante mucho tiempo su caracter\\xEDstica m\\xE1s reconocible fue el autocompletado.\"), mdx(\"p\", null, \"Escrib\\xEDamos:\"), mdx(CodeJs, {\n    mdxType: \"CodeJs\"\n  }, 'function calculateTotal(items) {'), mdx(\"p\", null, \"y Copilot intentaba adivinar el resto.\"), mdx(\"p\", null, \"En su momento aquello parec\\xEDa revolucionario.\"), mdx(\"p\", null, \"Hoy parece casi b\\xE1sico.\"), mdx(\"p\", null, \"GitHub ha ido evolucionando Copilot hacia modelos cada vez m\\xE1s ag\\xE9nticos, capaces de asumir tareas m\\xE1s amplias relacionadas con un repositorio.\"), mdx(\"p\", null, \"Su principal ventaja sigue siendo el ecosistema.\"), mdx(\"p\", null, \"Para organizaciones que trabajan intensivamente con GitHub y tienen sus procesos de desarrollo construidos alrededor de repositorios, issues y pull requests, disponer de agentes integrados en ese entorno puede resultar especialmente c\\xF3modo.\"), mdx(\"p\", null, \"Pero tambi\\xE9n representa perfectamente la velocidad a la que est\\xE1 cambiando este mercado.\"), mdx(\"p\", null, \"La herramienta que ayud\\xF3 a popularizar la programaci\\xF3n con IA ahora compite con productos nacidos directamente bajo el paradigma de los agentes.\"), mdx(\"hr\", null), mdx(\"h2\", null, \"Claude Code vs Codex vs Cursor vs OpenCode vs Antigravity\"), mdx(\"span\", {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1200px\"\n    }\n  }, \"\\n      \", mdx(\"a\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/ba5b5ff95aa0db23f15d0d927f3a1a26/79f83/agentes-ia-comparativa.webp\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"66.66666666666666%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/webp;base64,UklGRpoAAABXRUJQVlA4II4AAACwAwCdASoUAA0APtFUo0uoJKMhsAgBABoJagCdABo3G+0FJH4UoAD+8uJoxuDLHq0nX34MeJp1nrUfI4tOcAXvof7iUaB8kcEcTa7beh4VM9uf1CFSrmiPIyVNxLxpOet4gbxMRXMCefG8e9NT4YIiZq/az6oNtATSnFUcpByYUZAjmHx+iGlGoBNfAAAA')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"img\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Desarrollador evaluando diferentes formas de trabajar con agentes de inteligencia artificial\",\n    \"title\": \"Desarrollador evaluando diferentes formas de trabajar con agentes de inteligencia artificial\",\n    \"src\": \"/static/ba5b5ff95aa0db23f15d0d927f3a1a26/5bb53/agentes-ia-comparativa.webp\",\n    \"srcSet\": [\"/static/ba5b5ff95aa0db23f15d0d927f3a1a26/cb58d/agentes-ia-comparativa.webp 300w\", \"/static/ba5b5ff95aa0db23f15d0d927f3a1a26/f8b1b/agentes-ia-comparativa.webp 600w\", \"/static/ba5b5ff95aa0db23f15d0d927f3a1a26/5bb53/agentes-ia-comparativa.webp 1200w\", \"/static/ba5b5ff95aa0db23f15d0d927f3a1a26/79f83/agentes-ia-comparativa.webp 1535w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  }), \"\\n  \"), \"\\n    \"), mdx(\"br\", null), mdx(\"p\", null, \"Despu\\xE9s de probar o analizar estas herramientas resulta tentador buscar una respuesta sencilla:\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\xBFcu\\xE1l es el mejor agente de IA para programar?\")), mdx(\"p\", null, \"Probablemente sea una pregunta mal planteada.\"), mdx(\"p\", null, \"La pregunta \\xFAtil es:\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\xBFc\\xF3mo queremos trabajar con la IA?\")), mdx(\"p\", null, \"Si queremos un flujo muy orientado a \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"terminal y repositorio\"), \", Claude Code resulta especialmente atractivo.\"), mdx(\"p\", null, \"Si preferimos mantener una experiencia cercana al \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"IDE tradicional\"), \", Cursor ofrece una transici\\xF3n muy natural.\"), mdx(\"p\", null, \"Si queremos \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"delegar tareas completas y trabajar con varios agentes\"), \", Codex resulta especialmente interesante.\"), mdx(\"p\", null, \"Si valoramos el \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"open source y la posibilidad de elegir diferentes modelos\"), \", OpenCode ofrece una propuesta distinta.\"), mdx(\"p\", null, \"Si queremos experimentar con un entorno dise\\xF1ado desde el principio alrededor de la \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"orquestaci\\xF3n de agentes, editor, terminal y navegador\"), \", Google Antigravity representa una de las propuestas m\\xE1s ambiciosas.\"), mdx(\"p\", null, \"Y si nuestra organizaci\\xF3n ya est\\xE1 profundamente integrada con GitHub, \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Copilot\"), \" sigue teniendo una ventaja importante gracias a su ecosistema.\"), mdx(\"p\", null, \"Pero existe algo todav\\xEDa m\\xE1s interesante.\"), mdx(\"p\", null, \"Estas diferencias empiezan a demostrar que el modelo de inteligencia artificial es solamente una parte del problema.\"), mdx(\"hr\", null), mdx(\"h2\", null, \"El modelo no lo es todo: la importancia del harness\"), mdx(\"span\", {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1200px\"\n    }\n  }, \"\\n      \", mdx(\"a\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/36e8993e8660d21f86d4fc9f0e7c03fa/a8642/agentes-ia-harness.webp\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"66.66666666666666%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/webp;base64,UklGRowAAABXRUJQVlA4IIAAAAAwBACdASoUAA0APtFUo0uoJKMhsAgBABoJZACdMoMxgEZ67Nb5uYzZXAAA/vM4ByVGyZub2EQAe7A07bfr2PfT5mJX6Yo5wNjTXSOmw/QOpDLTcYEjDW0vtPfmZkmTdkQb78II9ZbAwdLfYlCYvRRqxQSRA6gylmRYAW99S/AAAA==')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"img\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Entorno de herramientas, contexto y validación que rodea a un agente de programación\",\n    \"title\": \"Entorno de herramientas, contexto y validación que rodea a un agente de programación\",\n    \"src\": \"/static/36e8993e8660d21f86d4fc9f0e7c03fa/5bb53/agentes-ia-harness.webp\",\n    \"srcSet\": [\"/static/36e8993e8660d21f86d4fc9f0e7c03fa/cb58d/agentes-ia-harness.webp 300w\", \"/static/36e8993e8660d21f86d4fc9f0e7c03fa/f8b1b/agentes-ia-harness.webp 600w\", \"/static/36e8993e8660d21f86d4fc9f0e7c03fa/5bb53/agentes-ia-harness.webp 1200w\", \"/static/36e8993e8660d21f86d4fc9f0e7c03fa/a8642/agentes-ia-harness.webp 1536w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  }), \"\\n  \"), \"\\n    \"), mdx(\"br\", null), mdx(\"p\", null, \"Cuando hablamos de Claude, GPT o Gemini solemos centrar la discusi\\xF3n en qu\\xE9 modelo razona mejor o cu\\xE1l obtiene mejores resultados en determinados benchmarks.\"), mdx(\"p\", null, \"Pero cuando programamos con agentes aparece otra capa fundamental.\"), mdx(\"p\", null, \"El \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"harness\"), \".\"), mdx(\"p\", null, \"Simplificando mucho, podemos entender el harness como el sistema que rodea al modelo y le permite trabajar.\"), mdx(\"p\", null, \"Incluye elementos como:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"instrucciones;\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"herramientas;\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"acceso al sistema de archivos;\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"ejecuci\\xF3n de comandos;\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"gesti\\xF3n del contexto;\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"recuperaci\\xF3n de informaci\\xF3n;\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"planificaci\\xF3n;\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"control de permisos;\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"interacci\\xF3n con Git;\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"ejecuci\\xF3n de tests;\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"comunicaci\\xF3n entre agentes.\")), mdx(\"p\", null, \"El modelo puede ser extraordinariamente potente, pero si el sistema que le proporciona contexto y herramientas es deficiente, el resultado tambi\\xE9n lo ser\\xE1.\"), mdx(\"p\", null, \"Esto explica por qu\\xE9 dos agentes utilizando modelos similares pueden comportarse de forma muy diferente.\"), mdx(\"p\", null, \"Y probablemente explica tambi\\xE9n hacia d\\xF3nde se dirige la siguiente batalla entre herramientas de programaci\\xF3n con IA.\"), mdx(\"p\", null, \"No ser\\xE1 solamente:\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Claude vs GPT vs Gemini.\")), mdx(\"p\", null, \"Ser\\xE1 tambi\\xE9n:\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Claude Code vs Codex vs OpenCode vs Cursor vs Antigravity.\")), mdx(\"p\", null, \"Es decir, \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"qu\\xE9 sistema consigue convertir mejor la inteligencia del modelo en trabajo de ingenier\\xEDa \\xFAtil\"), \".\"), mdx(\"hr\", null), mdx(\"h2\", null, \"El desarrollador sigue siendo responsable del resultado\"), mdx(\"span\", {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1200px\"\n    }\n  }, \"\\n      \", mdx(\"a\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/f24533fc67950a08e90c016adbd12574/485a2/agentes-ia-supervision.webp\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"55.666666666666664%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/webp;base64,UklGRnwAAABXRUJQVlA4IHAAAADQAwCdASoUAAsAPtFUo0uoJKMhsAgBABoJQBOgBH//gBvL8W4VxKAA/vRZBbxsSgS5L5sS8MXnmaV4LF6l6Heu2jWU3UT8Y6R/fFazpLrlyLLVVQeRYRh+n3xbCdUyw7oRw0ochqabhnXCliPVVewA')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"img\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Desarrollador revisando responsablemente una propuesta creada por un agente de IA\",\n    \"title\": \"Desarrollador revisando responsablemente una propuesta creada por un agente de IA\",\n    \"src\": \"/static/f24533fc67950a08e90c016adbd12574/5bb53/agentes-ia-supervision.webp\",\n    \"srcSet\": [\"/static/f24533fc67950a08e90c016adbd12574/cb58d/agentes-ia-supervision.webp 300w\", \"/static/f24533fc67950a08e90c016adbd12574/f8b1b/agentes-ia-supervision.webp 600w\", \"/static/f24533fc67950a08e90c016adbd12574/5bb53/agentes-ia-supervision.webp 1200w\", \"/static/f24533fc67950a08e90c016adbd12574/485a2/agentes-ia-supervision.webp 1600w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  }), \"\\n  \"), \"\\n    \"), mdx(\"br\", null), mdx(\"p\", null, \"Toda esta autonom\\xEDa tiene un problema evidente.\"), mdx(\"p\", null, \"Los agentes tambi\\xE9n se equivocan.\"), mdx(\"p\", null, \"Y pueden equivocarse a gran velocidad.\"), mdx(\"p\", null, \"Un agente puede generar una implementaci\\xF3n perfectamente v\\xE1lida desde el punto de vista sint\\xE1ctico y completamente equivocada desde el punto de vista del negocio.\"), mdx(\"p\", null, \"Puede introducir una dependencia innecesaria.\"), mdx(\"p\", null, \"Puede duplicar una funcionalidad que ya exist\\xEDa.\"), mdx(\"p\", null, \"Puede modificar un test para conseguir que pase en lugar de solucionar el problema que estaba detectando.\"), mdx(\"p\", null, \"Puede construir una arquitectura innecesariamente compleja.\"), mdx(\"p\", null, \"Por eso delegar no significa dejar de supervisar.\"), mdx(\"p\", null, \"Una instrucci\\xF3n como:\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"Implementa el sistema de auditor\\xEDa.\")), mdx(\"p\", null, \"deja demasiado margen.\"), mdx(\"p\", null, \"Es preferible comenzar por:\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"Analiza c\\xF3mo podr\\xEDa implementarse un sistema de auditor\\xEDa respetando la arquitectura actual. No modifiques c\\xF3digo. Identifica componentes afectados, riesgos y alternativas.\")), mdx(\"p\", null, \"Revisamos.\"), mdx(\"p\", null, \"Despu\\xE9s:\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"Crea un plan de implementaci\\xF3n dividido en fases.\")), mdx(\"p\", null, \"Revisamos otra vez.\"), mdx(\"p\", null, \"Y finalmente:\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"Implementa la primera fase. No modifiques archivos fuera del alcance definido y ejecuta los tests afectados.\")), mdx(\"p\", null, \"Este procedimiento reduce considerablemente el riesgo de que el agente avance en una direcci\\xF3n incorrecta.\"), mdx(\"hr\", null), mdx(\"h2\", null, \"Los tests son todav\\xEDa m\\xE1s importantes cuando programan los agentes\"), mdx(\"span\", {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1200px\"\n    }\n  }, \"\\n      \", mdx(\"a\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/d90bd21a26426deb4311a9c826546aff/485a2/agentes-ia-tests.webp\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"52.66666666666667%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/webp;base64,UklGRnIAAABXRUJQVlA4IGYAAACwAwCdASoUAAsAPtFUo0uoJKMhsAgBABoJZACdACHPVMBEGe1WkAD+8aLGfCGtZ4qwDzUZNd51rqAvSKZdHe9n2el32OzHFALQOR+4UFE/m1qRAwlaNXYHYMWDKPE8Mhb2HCw0QAA=')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"img\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Pruebas automáticas ofreciendo feedback a un agente de programación\",\n    \"title\": \"Pruebas automáticas ofreciendo feedback a un agente de programación\",\n    \"src\": \"/static/d90bd21a26426deb4311a9c826546aff/5bb53/agentes-ia-tests.webp\",\n    \"srcSet\": [\"/static/d90bd21a26426deb4311a9c826546aff/cb58d/agentes-ia-tests.webp 300w\", \"/static/d90bd21a26426deb4311a9c826546aff/f8b1b/agentes-ia-tests.webp 600w\", \"/static/d90bd21a26426deb4311a9c826546aff/5bb53/agentes-ia-tests.webp 1200w\", \"/static/d90bd21a26426deb4311a9c826546aff/485a2/agentes-ia-tests.webp 1600w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  }), \"\\n  \"), \"\\n    \"), mdx(\"br\", null), mdx(\"p\", null, \"Parad\\xF3jicamente, cuanto m\\xE1s c\\xF3digo dejamos escribir a la inteligencia artificial, m\\xE1s importante resulta disponer de buenos mecanismos autom\\xE1ticos de verificaci\\xF3n.\"), mdx(\"p\", null, \"Un proyecto sin tests obliga al desarrollador a comprobar manualmente pr\\xE1cticamente todo lo que genera el agente.\"), mdx(\"p\", null, \"Un proyecto con buenos tests proporciona al agente un mecanismo inmediato de \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"feedback\"), \".\"), mdx(\"p\", null, \"Puede modificar c\\xF3digo.\"), mdx(\"p\", null, \"Ejecutar los tests.\"), mdx(\"p\", null, \"Observar el error.\"), mdx(\"p\", null, \"Corregirlo.\"), mdx(\"p\", null, \"Y volver a ejecutar las pruebas.\"), mdx(\"p\", null, \"Por eso metodolog\\xEDas como \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"TDD, integraci\\xF3n continua, especificaciones t\\xE9cnicas y desarrollo dirigido por requisitos\"), \" pueden adquirir todav\\xEDa m\\xE1s importancia en la era de los agentes.\"), mdx(\"p\", null, \"La IA puede acelerar enormemente la implementaci\\xF3n.\"), mdx(\"p\", null, \"Pero necesita saber qu\\xE9 significa que una implementaci\\xF3n sea correcta.\"), mdx(\"hr\", null), mdx(\"h2\", null, \"\\xBFCu\\xE1l es el futuro de los agentes de programaci\\xF3n?\"), mdx(\"span\", {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1200px\"\n    }\n  }, \"\\n      \", mdx(\"a\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/9eed6f768f39a9ff713e073d28ac7553/485a2/agentes-ia-futuro.webp\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"57.00000000000001%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/webp;base64,UklGRogAAABXRUJQVlA4IHwAAAAwBACdASoUAAsAPtFUo0uoJKMhsAgBABoJaACdMoADg5D7IqZT0ZYB6AAA/vMR7VK2v2rfjtf1cAeLsh9PktYhWn0XNTXtVfyA89dTTU3FqX69+XBRtEyJlPbGwsPlwHet71L5QBPJ8yT3ig4CYB/GH4Dtzn0aYytxAAAA')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"img\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Desarrollador orquestando varios agentes de inteligencia artificial en el futuro del desarrollo de software\",\n    \"title\": \"Desarrollador orquestando varios agentes de inteligencia artificial en el futuro del desarrollo de software\",\n    \"src\": \"/static/9eed6f768f39a9ff713e073d28ac7553/5bb53/agentes-ia-futuro.webp\",\n    \"srcSet\": [\"/static/9eed6f768f39a9ff713e073d28ac7553/cb58d/agentes-ia-futuro.webp 300w\", \"/static/9eed6f768f39a9ff713e073d28ac7553/f8b1b/agentes-ia-futuro.webp 600w\", \"/static/9eed6f768f39a9ff713e073d28ac7553/5bb53/agentes-ia-futuro.webp 1200w\", \"/static/9eed6f768f39a9ff713e073d28ac7553/485a2/agentes-ia-futuro.webp 1600w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  }), \"\\n  \"), \"\\n    \"), mdx(\"br\", null), mdx(\"p\", null, \"Lo interesante de Claude Code, Codex, Cursor, OpenCode y Google Antigravity no es \\xFAnicamente cu\\xE1l genera actualmente mejor c\\xF3digo.\"), mdx(\"p\", null, \"Las capacidades de los modelos cambian demasiado r\\xE1pido como para que esa clasificaci\\xF3n dure mucho tiempo.\"), mdx(\"p\", null, \"La transformaci\\xF3n importante est\\xE1 ocurriendo en otro nivel.\"), mdx(\"p\", null, \"Durante d\\xE9cadas la herramienta principal del desarrollador fue el editor.\"), mdx(\"p\", null, \"Despu\\xE9s se convirti\\xF3 en el IDE.\"), mdx(\"p\", null, \"Ahora estamos empezando a trabajar con \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"entornos de agentes\"), \".\"), mdx(\"p\", null, \"Y eso cambia progresivamente nuestra unidad de trabajo.\"), mdx(\"p\", null, \"Primero delegamos una l\\xEDnea de c\\xF3digo.\"), mdx(\"p\", null, \"Despu\\xE9s una funci\\xF3n.\"), mdx(\"p\", null, \"Despu\\xE9s un archivo.\"), mdx(\"p\", null, \"Ahora delegamos una tarea.\"), mdx(\"p\", null, \"El siguiente paso ya est\\xE1 apareciendo:\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"delegar varias tareas simult\\xE1neamente a diferentes agentes.\")), mdx(\"p\", null, \"El desarrollador no desaparece de ese proceso.\"), mdx(\"p\", null, \"Pero su trabajo empieza a desplazarse.\"), mdx(\"p\", null, \"Ser\\xE1 cada vez m\\xE1s importante comprender arquitectura, definir correctamente los requisitos, dise\\xF1ar sistemas, establecer restricciones, construir pruebas y evaluar soluciones.\"), mdx(\"p\", null, \"Porque un agente puede generar miles de l\\xEDneas de c\\xF3digo.\"), mdx(\"p\", null, \"Pero alguien tiene que decidir \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"qu\\xE9 c\\xF3digo merece llegar a producci\\xF3n\"), \".\"), mdx(\"p\", null, \"Y esa responsabilidad contin\\xFAa siendo del desarrollador.\"));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"twitterUsername":"@CursosDesarrol1","title":"Los agentes de IA más demandados para programar: Claude Code, Codex, Cursor, OpenCode y Antigravity","seoTitle":"Agentes de IA para programar: Claude Code, Codex y Cursor","date":"2026-08-27","description":"Comparamos Claude Code, Codex, Cursor, OpenCode, Google Antigravity y GitHub Copilot para elegir el agente de IA con el que programar.","featuredImage":{"childImageSharp":{"fluid":{"base64":"data:image/webp;base64,UklGRmQAAABXRUJQVlA4IFgAAACQAwCdASoUAA0APtFUo0uoJKMhsAgBABoJZgCdACHhXJmXkE7gAP72jSPxkpN3aqYbHG0CniSXNxVh7qvaoGM5J88YweM2YakMDXR13mrHUSVbn6kQAAAA","aspectRatio":1.5037593984962405,"src":"/static/e7370bb5d28b31532f99ed7b0b712d79/ccdb5/agentes-ia-portada.webp","srcSet":"/static/e7370bb5d28b31532f99ed7b0b712d79/6b183/agentes-ia-portada.webp 200w,\n/static/e7370bb5d28b31532f99ed7b0b712d79/fc32b/agentes-ia-portada.webp 400w,\n/static/e7370bb5d28b31532f99ed7b0b712d79/ccdb5/agentes-ia-portada.webp 800w,\n/static/e7370bb5d28b31532f99ed7b0b712d79/9000d/agentes-ia-portada.webp 1200w,\n/static/e7370bb5d28b31532f99ed7b0b712d79/7dd62/agentes-ia-portada.webp 1536w","sizes":"(max-width: 800px) 100vw, 800px"}}}}}},"pageContext":{"slug":"/articulos/agentes_ia_programar/","previous":{"fields":{"slug":"/avisos_legales/aviso_legal/"}},"next":null}},"staticQueryHashes":["2032873950"]}